Data types in computer programming languages help give meaning to the bits that represent values in computer systems. Limiting program values to particular data types also helps programmers detect and avoid some errors. Some programming environments support static typing, in which a compiler or similar tool checks variable uses against variable type declarations at compile-time, that is, at the time when a program's source code is being translated into executable code. Some of the many programming languages which use static typing include Ada, Basic, C#, COBOL, FORTRAN, Java™ (mark of Sun Microsystems, Inc.), and Pascal, to name just a few. Some programming environments support dynamic typing, in which type-checking is performed at runtime (during program execution) rather than compile-time. Some of the programming languages which use dynamic typing include JavaScript™ (mark of Sun Microsystems, Inc.), Lisp, Prolog, Python, and Ruby, for example.